﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ShevaEngine.Core.GameLogic.Messages
{
    /// <summary>
    /// Game core message.
    /// </summary>
    public abstract class GameCoreMessage
    {
        /// <summary>Sender.</summary>
        public Guid Sender;
        /// <summary>Timestamp.</summary>
        public DateTime TimeStamp;

        /// <summary>
        /// Constructor.
        /// </summary>
        public GameCoreMessage()
        {
            this.Sender = Guid.Empty;
            this.TimeStamp = DateTime.MinValue;
        }

        /// <summary>
        /// Constructor.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="receiver"></param>
        /// <param name="timestamp"></param>
        public GameCoreMessage(Guid sender, DateTime timestamp)
        {
            this.Sender = sender;
            this.TimeStamp = timestamp;
        }

        ///// <summary>
        ///// Serialize method.
        ///// </summary>
        ///// <returns></returns>
        //public abstract byte[] Serialize();

        ///// <summary>
        ///// Deserealize.
        ///// </summary>
        ///// <param name="data"></param>
        ///// <returns></returns>
        //public abstract void Deserialize(byte[] data);
    }
}
